Document scaling/concurrency and complete config reference for customer-managed runners#18816
Conversation
…er-managed runners Adds a "Scaling and concurrency" section explaining that each runner processes one job at a time, that scaling is done by adding runners, and that the service guarantees a job is claimed by exactly one runner. Expands the configuration reference to include the previously undocumented health_threshold setting, notes the env-var prefix and precedence rules, and reorganizes the YAML block into logical groups (required, OIDC, polling/retry, health/observability) with tightened descriptions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Docs reviewOverall a strong improvement — the new "Scaling and concurrency" section gives readers a concrete mental model, and regrouping the configuration reference by purpose is much easier to scan than the previous flat list. A handful of small consistency/style fixes below. IssuesInconsistent terminology — Line 56 says "one additional concurrency slot"; line 64 says "one additional concurrent slot." Pick one and use it in both places. Since the section is titled "Scaling and concurrency," I'd lean toward "concurrency slot."
Reads more naturally as prose than
Lines 64 and 139 already use "for example." For consistency (and per Google style, which prefers a comma after Slash between A bare Directional reference in YAML comment (line 207)
Nits
What's working
If you'd like me to take another look after revisions, mention @claude. |
- Use "concurrency slot" consistently and replace "= one additional"
with prose ("adds one concurrency slot").
- Replace "picks the job up" with "picks up the job".
- Clarify "configured concurrency limit" to disambiguate from the
earlier mention of concurrency.
- Soften "no in-process worker pool to size" to "Each runner has no
internal worker pool to configure".
- Replace "e.g." with "for example" for consistency with the rest of
the page.
- Replace "/" with "or" in the retry comment for clearer prose.
- Drop the directional reference "above" in the OIDC section header.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@claude review again |
|
Claude finished @borisschlosser's task in 1m 9s —— View job Docs review (follow-up)All issues from the prior review have been addressed:
One small leftover I noticed on second passLine 56 reads:
"Each runner" appears twice in two short sentences. Optional tightening — collapse to a single sentence: Not blocking. What's working
LGTM modulo the optional nit above. |
|
Your site preview for commit c71e85f is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-18816-c71e85f7.s3-website.us-west-2.amazonaws.com |
|
@claude collaps the "each runner" sentences to one as suggested by yourself |
|
Claude finished @borisschlosser's task in 29s —— View job Done
Line 56 now reads as a single sentence:
|
Co-authored-by: Boris Schlosser <borisschlosser@users.noreply.github.com>
There was a problem hiding this comment.
LGTM — the YAML reorganization and the new "Scaling and concurrency" section are real readability wins, and I spot-checked the defaults and the health_threshold derivation against the agent source; both match.
Three small things you might want to fold into a follow-up (none are blockers):
-
Line 149 —
# Required unless using OIDC (see oidc_token_file below).is a directional reference. The earlier review pass caught the same pattern with "above" on line 207 and replaced it with a section name. Easiest fix here is to drop "below" entirely:# Required unless using OIDC.reads fine sinceoidc_token_fileis named again a few lines later. -
Line 208 — backtick consistency in the OIDC group header:
## organization_name and runner_pool_id are required, and `token` is not used....puts backticks on token but not on the other keys. Either backtick all or none.
- Line 99 (outside this PR's diff) — the OIDC prose bullet still says
token_expirationis "the expiration in seconds for the tokens requested by the workflow runner," but the agent reads it viaGetDuration(config.go:154), and the new general note at line 141 establishes Go duration syntax across the board. Worth tightening to something like "the lifetime of tokens requested by the workflow runner (Go duration syntax, e.g. `1h`)" so the page tells one consistent story.
Address review feedback on the customer-managed workflow runners doc: clarify that each runner process can run one deployment plus one Insights/policy job in parallel, split crash-recovery behavior by workflow type (lease-based for Insights/policy, not redelivered for deployments), and tighten config-reference nits (drop directional "below", backtick OIDC group keys consistently, restate token_expiration in Go duration terms). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
single_runjobs, and specialized pools viaenabled_workflow_types.health_threshold/PULUMI_AGENT_HEALTH_THRESHOLDsetting.PULUMI_AGENT_*env-var convention, env-over-file precedence, and Go-style duration syntax.deploy_target,circuit_breaker_failures,single_run,env_forward_allowlistalways-forwardedDOCKER_HOST).Test plan
make serveor equivalent) and confirm formatting.health_thresholdentry is visible.🤖 Generated with Claude Code